Tietokantaopetus ja tekoäly
Logiikkasääntöjä ja ER-kaavoja, kardinaalisuuksien hahmottelua ja käsitemaailmaa. Perus-CRUD SQL-kielellä (Structured Query Language) ja taulujen yhdistelyä pää- ja viiteavaimin. SQL on loogista, siistiä ja selkeää, kun sen kanssa on työskennellyt hetken. Tietokantoihin tutustumisen alussa näin ei kuitenkaan ole. Uusi skriptikieli käskyineen ja funktioineen. Uusi tapa hahmottaa tietoa ja sen rakennetta sekä yhteyksiä eri tietokokonaisuuksien välillä. Kun on juuri saatu perusteet haltuun, aletaan puhua rajoitteista, indekseistä, triggereistä ja funktioista. Vuori alkaa näyttää jyrkältä ja korkealta.
Tekoäly tarjoaa toisenlaisen lähestymistavan tietokantoihin tutustumiseen. Tuntematta käsitemaailmaa, kardinaalisuuksia tai tarkkoja tietotyyppejä saa alustavan tietokantaesimerkin haluamastaan aiheesta ja hieman esimerkkidataa muutamassa minuutissa. Alustava kanta on raakaversio, mutta useimmiten linkit ovat kunnossa ja kannan rakennetta pystyy muokkaamaan selkokielisesti kirjoittamatta SQL:ää. Tutustuminen tiedon rakenteeseen, tallentamiseen, muokkaamiseen ja hakemiseen voi alkaa tutuilla teemoilla.
Promptaus
Tekoäly haastoi tietokantaopetusta ennen kuin pohdin niiden hyödyntämistä täyden sallivuuden kautta. Perinteisen tietokantakurssin harjoitustyön vaatimukset kun täyttyvät häkellyttävän helposti ChatGPT:n avustuksella. Tämä on arvioinnillisesti haastavaa, mutta toisaalta se mahdollistaa myös huomattavasti laajempien harjoitustöiden tekemisen ja samalla voidaan käsitellä useampia aihealueita uusien esimerkkien kautta. Samalla se on opiskelijoille oikopolku sääntöjen maailmasta suoraan lopputuotteeseen ja oppimiseen esimerkin kautta.
Miltä sitten näyttää tietokannan ”oikeaoppinen” promptaus toteutuksen ja opiskelun kannalta? Oleellista käydä kaikki keskustelut yhden ketjun sisällä, jolloin käskyt toimivat saman luodun kannan pohjalta ja mahdolliset lisäkysymykset muokkaavat alkuperäistä kokonaisuutta. Tämä vuoksi on hyvä käyttää työkaluja, jotka muistavat aiemmin käydyt keskustelut, jotta niihin pystyy tarvittaessa palaamaan. Varsinainen promptaus tapahtuu seuraavasti:
1. Pyydä tekoälyltä ideoita tietokannan toteuttamiseen ja valitse niistä. Tämä vaihe on mahdollista ohittaa, jos tiedät mille osa-alueelle olet luomassa tietokantaa.
2. Pyydä tekoälyä luomaan taulujen luontilauseet SQL:llä.
2.1 Tarkastele luontilauseita ja keskustele uusien kenttien lisäämisestä tai tietotyyppien vaihtamisesta.
2.2 Lisää lopuksi taulut tietokantaan.
3. Pyydä tekoälyä luomaan INSERT-lauseita, jolla viedään esimerkkidataa kantaan.
3.1 Aja lauseet siten, että ensi täyttyvät taulut, joissa ei ole viittausta muihin tauluihin. Tämä sen vuoksi, että viiteavaimien luonti edellyttää, että viitattavassa taulussa on jo tieto valmiina.
3.2 Tämän jälkeen pystyt luomaan tiedot myös viittaaviin tauluihin.
4. Pohdi yhdessä tekoälyn kanssa, mihin kenttiin tai kenttäyhdistelmiin voidaan tehdä paljon kyselyjä käyttötarkoituksen mukaan. Pyydä sitten tekoälyä luomaan indeksit näihin kenttiin tai kenttien yhdistelmiin.
5. Pohdi yhdessä tekoälyn kanssa kenttiä, joihin voidaan syöttää arvoja vain tietyltä väliltä tai vain tiettyjä arvoja. Pyydä sitten luomaan rajoitteet näihin kenttiin keskustelun perusteella.
6. Pohdi yhdessä tekoälyn kanssa tapauksia, joissa tieto tarvitaan useammasta taulusta. Pyydä sitten luomaan näkymä, joka kokoaa nämä tiedot yhteen.
7. Pyydä tekoälyä pohtimaan erilaisia tarkastuksia tai logituksia, joita pitää hoitaa tietojen lisäyksen, poistamisen tai muuttamisen yhteydessä. Pyydä sitten luomaan SQL-koodi, jolla luodaan tarvittavat triggerit.
8. Kun kanta on rakennettu tällä tavalla yhden keskustelun sisällä, pystyt myös kehittämään tekoälyn kanssa SELECT-kyselyjä, jotka hyödyntävät eri funktioita, järjestelyä tai ryhmittelyä tarpeiden mukaan.
Edellä esitetyllä promptiketjulla pystyy rakentamaan oikeastaan aiheeseen kuin aiheeseen varsin pätevän esimerkkitietokannan. Olemassa olevien taulujen luontilauseet voi tuoda keskustelun pohjaksi, jos kantaa on tarvetta muuttaa uusien tietotarpeiden ilmaantuessa.
Pohdinta
Perusosaamisen kehittämisessä tekoälyn kautta luodut esimerkkikannat auttavat paremmin hahmottamaan tietokantojen rakennetta kokonaisuutena ilman, että jäädään jumiin loogisten rakenteiden opetteluun. Oppimisen kannalta oleellinen vaihe on esimerkkien siirtämisessä tietokannanhallintajärjestelmään. Jos kyselyt kopioidaan pohtimatta ja opettelematta niiden rakennetta, ei kyky arvioida ja kehittää kantoja synny. Tällöin jäädään tekoälyn armoille myös jatkossa ja tekoälystä ei muodostu oman ajattelun tukiälyä. Jos taas kyselyistä käy lisäksi keskustelua tekoälyn kanssa ja opettelee logiikkaa esimerkeistä, niin ollaan voiton puolella niin omassa oppimisessa kuin myös tekoälyn hyödyntämisessä. Tällöin pystyy suhtautumaan kriittisesti tekoälyn tuottamiin tietorakenteisiin ja oma kyky arvioida ja tuottaa tietokantaratkaisuja kehittyy.
Kuten todettua, tekoälyavusteisessa tietokantakehityksessä voidaan vaatia peruskursseillakin vaativampia toteutuksia ja sisällyttää kurssiin aiempaa enemmän materiaalia. Samalla arvioinnissa voidaan painottaa niin oppimisprosessia kuin itsearviointiakin lopputuloksen rinnalla. Näin pystytään keskittymään oleelliseen eli opiskelijan kykyyn työskennellä modernein apuvälinein tietokantojen kehittämisen parissa rajoittamatta keinotekoisesti sallittujen menetelmien valikoimaa.
Muutos
Muutos on kuitenkin nopeaa niin opettajien kuin opiskelijoidenkin puolesta. Meillä kaikilla on vielä opiskeltavaa siitä, miten tekoälyn kanssa opitaan ja työskennellään parhaalla mahdollisella tavalla. Monia aiempia käsityksiä on muokattava ja sovitettava uuteen avustettuun todellisuuteen. Kriittisyyttä ja omaa osaamista on edelleen kehitettävä, jotta voidaan toimia vastuullisesti aikakaudella, jolla tekoälyavusteisesti tuotettuja ohjelmistoratkaisuja viedään tuotantoon.
Lopulta on todettava, että tekoälyaiheinen teksti vanhenee kuin pirtin pöydälle unohtunut maito. Kun kielimallit integroidaan tietokantohallintajärjestelmään, tässä kirjoituksessa mainittu tekoälyavustus muuttuu sallivuudesta opetuksessa jokapäiväiseksi työskentelytavaksi. Elämme dynaamisen muutoksen keskellä, jossa tulee ruokkia kykyä ja uskallusta kokeilla, mutta säilyttää samalla kontrolli ”oman” työn jäljestä.
Mikko Kulmala
FM, KTM
Lehtori
Seinäjoen ammattikorkeakoulu